﻿Imports Tom0014TableAdapters
Imports Tom0014
''' <summary>
''' MORFOLOGIA
''' 
''' Jesús Rodrigo Ledesma Perez
''' Creado: 13 / Ene / 2011
''' Ultima Mod: 13 / Ene / 2011
''' </summary>
''' <remarks></remarks>
Partial Class Registro_morfologia
    Inherits System.Web.UI.Page
    Dim CategoriasAdap As New catalogo_generalTableAdapter
    Dim categorias As New catalogo_generalDataTable
    Dim idAnimal As Integer
    Const sCarpetaImg As String = "~/photos/Galeria/"

    ' Carga los catalogos antes de inicializar las paginas
    Protected Sub Registro_morfologia_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
        If Not IsPostBack Then
            categorias = CategoriasAdap.GetCatalogo() ' Cargar el catalogo en memoria
            ddlPelaje1_M = fillCatalogos(ddlPelaje1_M, "W")
            ddlPelaje2_M = fillCatalogos(ddlPelaje2_M, "X")
            ddlPelaje3_M = fillCatalogos(ddlPelaje3_M, "Y")
            ddlPelaje4_M = fillCatalogos(ddlPelaje4_M, "Z")
            ddlLongitud = fillCatalogos(ddlLongitud, "PL")
            ddlSimetria = fillCatalogos(ddlSimetria, "PS")
            ddlPuntas = fillCatalogos(ddlPuntas, "PP")
            ddlFormas = fillCatalogos(ddlFormas, "C")
            ddlTamaño = fillCatalogos(ddlTamaño, "HT")
            ddlHLongitud = fillCatalogos(ddlHLongitud, "HL")
            ddlAltura = fillCatalogos(ddlAltura, "HU")
            ddlAgujas = fillCatalogos(ddlAgujas, "HG")
            ddlAnchura = fillCatalogos(ddlAnchura, "HA")
            ddlLomo = fillCatalogos(ddlLomo, "HN")
            ddlCuello = fillCatalogos(ddlCuello, "HE")
            ddlCzaTam = fillCatalogos(ddlCzaTam, "HD")
            ddlCzaTipo = fillCatalogos(ddlCzaTipo, "HC")
            ddlConjunto = fillCatalogos(ddlConjunto, "HO")
            ddlTrapio = fillCatalogos(ddlTrapio, "HR")
            ddlMorrillo = fillCatalogos(ddlMorrillo, "HM")
        End If

    End Sub
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            idAnimal = CType(Request.QueryString("animal"), Integer)
        Catch ex As Exception
            idAnimal = 0
        End Try

        If (idAnimal <> 0) And Not IsPostBack Then ' Cargar la informacion a traves de la tabla

            Dim morfologia As New MorfologiaDataTable
            Dim MorfologiaTa As New MorfologiaTableAdapter
            morfologia = MorfologiaTa.GetMorfologiaByAnimalId(idAnimal)
            ' MODIF: Se corrige un error al recibir valores nulos desde la base de datos
            ' HACK BUG: Modificar el llamado de la fotografia, ver la foto predeterminada
            If morfologia(0).photo Then
                Dim AnimalFoto As New FotosDataTable
                Dim _AnimalFoto As New FotosTableAdapter
                AnimalFoto = _AnimalFoto.GetFotoByAnimal(idAnimal)
                If AnimalFoto.Count = 1 Then
                    imgImagen.ImageUrl = sCarpetaImg & AnimalFoto(0).NombreArchivo ' jalar seleccion de foto
                Else
                    imgImagen.ImageUrl = morfologia(0).imagen ' si no hay seleccion de foto
                End If
            End If
            lblAnimal.Text = morfologia(0).claveSNLA + " " + morfologia(0).nombre
            ddlPelaje1_M.SelectedValue = morfologia(0).pelaje1
            ddlPelaje2_M.SelectedValue = morfologia(0).pelaje2
            ddlPelaje3_M.SelectedValue = morfologia(0).pelaje3
            ddlPelaje4_M.SelectedValue = morfologia(0).pelaje4
            ddlLongitud.SelectedValue = CType(morfologia(0).piton_long, String)
            ddlSimetria.SelectedValue = CType(morfologia(0).piton_sime, String)
            ddlPuntas.SelectedValue = CType(morfologia(0).piton_punta, String)
            ddlFormas.SelectedValue = CType(morfologia(0).piton_forma, String)
            ddlTamaño.SelectedValue = CType(morfologia(0).hec_tamaño, String)
            ddlHLongitud.SelectedValue = CType(morfologia(0).hec_longitud, String)
            ddlAltura.SelectedValue = CType(morfologia(0).hec_altura, String)
            ddlAgujas.SelectedValue = CType(morfologia(0).hec_agujas, String)
            ddlAnchura.SelectedValue = CType(morfologia(0).hec_anchura, String)
            ddlLomo.SelectedValue = CType(morfologia(0).hec_lomo, String)
            ddlCuello.SelectedValue = CType(morfologia(0).hec_cuello, String)
            ddlCzaTam.SelectedValue = CType(morfologia(0).hec_cabeza_tam, String)
            ddlCzaTipo.SelectedValue = CType(morfologia(0).hec_cabeza_tip, String)
            ddlConjunto.SelectedValue = CType(morfologia(0).hec_conjunto, String)
            ddlTrapio.SelectedValue = CType(morfologia(0).hec_trapio, String)
            ddlMorrillo.SelectedValue = CType(morfologia(0).hec_morrillo, String)
        End If
    End Sub
    ''' <summary>
    ''' Llena los DropDownList utilizados en la patallas a partir de la tabla
    ''' catalogos
    ''' </summary>
    ''' <param name="myDropDown">DropDownList pasado por valor</param>
    ''' <param name="Cadena">Indica la clave de la categoria</param>
    ''' <returns>Devuelve DropDownList</returns>
    ''' <remarks>Utiliza esta funcion para llenar las opciones del formulario</remarks>
    Function fillCatalogos(ByVal myDropDown As DropDownList, ByVal Cadena As String) As DropDownList
        myDropDown.DataSource = categorias.Select("cattip='" + Cadena + "'", "catnom")
        myDropDown.DataBind()

        Return myDropDown
    End Function

    Protected Sub btnActualiza_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnActualiza.Click
        Dim actualizado As Integer ' Determina el numero de registros actualizados
        Try ' Obten el valor del animal a trabajar
            idAnimal = CType(Request.QueryString("animal"), Integer)
        Catch ex As Exception
            idAnimal = 0
        End Try

        If Not (idAnimal = 0) And IsPostBack Then ' Verificar que exista un numero valido de animal
            Dim morfologia As New MorfologiaDataTable
            Dim AdapMorfologia As New MorfologiaTableAdapter

            ' Llena la tabla de datos 
            morfologia = AdapMorfologia.GetMorfologiaByAnimalId(idAnimal)

            ' Si existen registros actualizalos
            If Not IsNothing(morfologia) Then
                morfologia(0).pelaje1 = ddlPelaje1_M.SelectedValue
                morfologia(0).pelaje2 = ddlPelaje2_M.SelectedValue
                morfologia(0).pelaje3 = ddlPelaje3_M.SelectedValue
                morfologia(0).pelaje4 = ddlPelaje4_M.SelectedValue
                morfologia(0).piton_long = CType(ddlLongitud.SelectedValue, Integer)
                morfologia(0).piton_sime = CType(ddlSimetria.SelectedValue, Integer)
                morfologia(0).piton_punta = CType(ddlPuntas.SelectedValue, Integer)
                morfologia(0).piton_forma = ddlFormas.SelectedValue
                morfologia(0).hec_tamaño = CType(ddlTamaño.SelectedValue, Integer)
                morfologia(0).hec_longitud = CType(ddlHLongitud.SelectedValue, Integer)
                morfologia(0).hec_altura = CType(ddlAltura.SelectedValue, Integer)
                morfologia(0).hec_agujas = CType(ddlAgujas.SelectedValue, Integer)
                morfologia(0).hec_anchura = CType(ddlAnchura.SelectedValue, Integer)
                morfologia(0).hec_lomo = CType(ddlLomo.SelectedValue, Integer)
                morfologia(0).hec_cuello = CType(ddlCuello.SelectedValue, Integer)
                morfologia(0).hec_cabeza_tam = CType(ddlCzaTam.SelectedValue, Integer)
                morfologia(0).hec_cabeza_tip = CType(ddlCzaTipo.SelectedValue, Integer)
                morfologia(0).hec_conjunto = CType(ddlConjunto.SelectedValue, Integer)
                morfologia(0).hec_trapio = CType(ddlTrapio.SelectedValue, Integer)
                morfologia(0).hec_morrillo = CType(ddlMorrillo.SelectedValue, Integer)
                Try
                    actualizado = AdapMorfologia.Update(morfologia)
                Catch ex As Exception
                    lblActualizado.Text = ex.Message
                End Try

                ' Actuliza la tabla a traves del TableAdapter
                If actualizado = 1 Then
                    pnActualizado.CssClass = "success"
                    lblActualizado.Text = "REGISTRO ACTUALIZADO"
                End If

            End If

        End If

    End Sub
End Class
